package com.atguigu.base;

import javax.servlet.http.HttpServletRequest;
import java.util.Enumeration;
import java.util.Map;
import java.util.TreeMap;

/**
 * 封装页面提交的分页参数及搜索条件
 */
public class BaseController {

    //将请求中的数据转换称Map<String，Object>的方法
    public Map<String, Object> getFilters(HttpServletRequest request) {
        //获取请求中的所有参数名
        Enumeration<String> parameterNames = request.getParameterNames();
        Map<String, Object> filters = new TreeMap();
        while (parameterNames != null && parameterNames.hasMoreElements()) {
            //那到他的的下一个元素名
            String paramName = parameterNames.nextElement();
            //通过name的元素名获取到该属性的值
            String[] parameterValues = request.getParameterValues(paramName);
            //对一个属性有多个值的情况进行不同方式的复制
            if (parameterValues != null && parameterValues.length != 0) {
                if (parameterValues.length > 1) {
                    filters.put(paramName, parameterValues);
                } else {
                    filters.put(paramName, parameterValues[0]);
                }
            }
        }
        //当第一次发起请求的时候如果没有pageNum和pageSize的数据的时候就进行给他们赋初始值
        if (!filters.containsKey("pageNum")) {
            filters.put("pageNum", 1);
        }
        if (!filters.containsKey("pageSize")) {
            filters.put("pageSize", 3);
        }
        return filters;
    }
}
